KFbxSkeleton Class Reference

#include <kfbxskeleton.h>
Inheritance diagram for KFbxSkeleton:
Inheritance graph
[legend]

List of all members.


Detailed Description

This class specializes a node attribute to represent the elements forming "bone" chains.

The KFbxSkeleton name of the class comes from the analogy with the human body skeletal structure. In fact, an object of this type is nothing more than a transform node with special properties that are useful for its graphical representation and during IK/FK and skin deformation computations. Typically, a scene will contain chains of KFbxSkeleton node attributes that, together, form a skeleton segment. For instance, the representation of the leg of a character can be achieved using one parent node with the attribute eROOT, followed by one child (femur) of type eLIMB, this child having a child also (tibia) of the same type. Finally, terminated with a last node attribute of type eEFFECTOR (ankle).

Definition at line 64 of file kfbxskeleton.h.


Skeleton Properties

enum   ESkeletonType {
   eROOT,
   eLIMB,
   eLIMB_NODE,
   eEFFECTOR
}
  Skeleton types. More...
void  SetSkeletonType (ESkeletonType pSkeletonType)
  Set the skeleton type.
ESkeletonType  GetSkeletonType () const
  Get the skeleton type.
bool  GetSkeletonTypeIsSet () const
  Get a flag to know if the skeleton type was set.
ESkeletonType  GetSkeletonTypeDefaultValue () const
  Get the default value for the skeleton type.
double  GetLimbLengthDefaultValue () const
  Get the default value for the limb length.
double  GetLimbNodeSizeDefaultValue () const
  Get the default value for the limb node size.
bool  SetLimbNodeColor (const KFbxColor &pColor)
  Set limb or limb node color.
KFbxColor  GetLimbNodeColor () const
  Get limb or limb node color.
bool  GetLimbNodeColorIsSet () const
  Get a flag to know if the limb node color was set.
KFbxColor  GetLimbNodeColorDefaultValue () const
  Get the default value for the limb node color.
bool  IsSkeletonRoot () const
  To see if this skeleton is Root.

Property Names

static const char *  sSize
static const char *  sLimbLength

Property Default Values

static const fbxDouble1  sDefaultSize
static const fbxDouble1  sDefaultLimbLength
KFbxTypedProperty< fbxDouble1 Size
  This property handles the limb node size.
KFbxTypedProperty< fbxDouble1 LimbLength
  This property handles the skeleton limb length.

Public Member Functions

virtual EAttributeType  GetAttributeType () const
  Return the type of node attribute (i.e: EAttributeType::eSKELETON).
void  Reset ()
  Reset the skeleton to default values and type to eROOT.

Member Enumeration Documentation

Skeleton types.

Remarks:
eEFFECTOR is synonymous to eROOT.

The eLIMB_NODE type is a bone defined uniquely by a transform and a size value while

the eLIMB type is a bone defined by a transform and a length.

Enumerator:
eROOT  First element of a chain.
eLIMB  Chain element.
eLIMB_NODE  Chain element.
eEFFECTOR  Last element of a chain.

Definition at line 85 of file kfbxskeleton.h.


Member Function Documentation

virtual EAttributeType GetAttributeType (  )  const [virtual]

Return the type of node attribute (i.e: EAttributeType::eSKELETON).

Reimplemented from KFbxNodeAttribute.

void Reset (  ) 

Reset the skeleton to default values and type to eROOT.

void SetSkeletonType ( ESkeletonType  pSkeletonType  ) 

Set the skeleton type.

Parameters:
pSkeletonType  Skeleton type identifier.

ESkeletonType GetSkeletonType (  )  const

Get the skeleton type.

Returns:
Skeleton type identifier.

bool GetSkeletonTypeIsSet (  )  const

Get a flag to know if the skeleton type was set.

Returns:
true if a call to SetSkeletonType() has been made.
Remarks:
When the attribute is not set, the application can choose to ignore the attribute or use the default value.

The flag is set back to false when Reset() is called.

ESkeletonType GetSkeletonTypeDefaultValue (  )  const

Get the default value for the skeleton type.

Returns:
eROOT

double GetLimbLengthDefaultValue (  )  const

Get the default value for the limb length.

Returns:
1.0

double GetLimbNodeSizeDefaultValue (  )  const

Get the default value for the limb node size.

Returns:
100.0

bool SetLimbNodeColor ( const KFbxColor pColor  ) 

Set limb or limb node color.

Parameters:
pColor  RGB values for the limb color.
Returns:
true if skeleton type is eLIMB or eLIMB_NODE, false otherwise.
Remarks:
Limb or limb node color is only set if skeleton type is eLIMB or eLIMB_NODE.

KFbxColor GetLimbNodeColor (  )  const

Get limb or limb node color.

Returns:
Currently set limb color.
Remarks:
Limb or limb node color is only valid if skeleton type is eLIMB or eLIMB_NODE.

bool GetLimbNodeColorIsSet (  )  const

Get a flag to know if the limb node color was set.

Returns:
true if a call to SetLimbNodeColor() has been made.
Remarks:
When the attribute is not set, the application can choose to ignore the attribute or use the default value.

The flag is set back to false when Reset() is called.

KFbxColor GetLimbNodeColorDefaultValue (  )  const

Get the default value for the limb node color.

Returns:
R=0.8, G=0.8, B=0.8

bool IsSkeletonRoot (  )  const

To see if this skeleton is Root.

Returns:
true if this is root of the skeleton, false otherwise.
Remarks:
if a skeleton node do not have a parent or its parent is not a skeleton node itself, then this skeleton is root in the hierarchy.

Member Data Documentation

const char* sSize [static]

Definition at line 163 of file kfbxskeleton.h.

const char* sLimbLength [static]

Definition at line 164 of file kfbxskeleton.h.

const fbxDouble1 sDefaultSize [static]

Definition at line 170 of file kfbxskeleton.h.

Definition at line 171 of file kfbxskeleton.h.

This property handles the limb node size.

To access this property do: Size.Get(). To set this property do: Size.Set(fbxDouble1).

Default value is 100.0

Definition at line 187 of file kfbxskeleton.h.

This property handles the skeleton limb length.

To access this property do: LimbLength.Get(). To set this property do: LimbLength.Set(fbxDouble1).

Default value is 1.0

Definition at line 196 of file kfbxskeleton.h.

KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton
KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton KFbxSkeleton